package _02_Constructor;
/**
 * 之前的程序没有构造方法,为什么可以调用?
 * 编译器的功能 : 
 * 	能把我们的代码编译成 class 字节码文件,并且还会检查语法结构,也会
 * 	帮我们补全没有写规范的代码
 * 比如 :
 * 	调用当前类中静态变量的时候,可以不写类名,但是编译器会自动帮我们
 * 	把当前类类名加上
 * 	包括构造方法也是,如果我们没有编写构造方法,编译器会自动指定一个
 * 	无参构造方法(参数列表为空的构造方法)
 * 
 * 1.构造方法的作用 : 创建当前类的实例化对象,并初始化成员属性
 * 2.如果不指定构造方法,系统会默认指定一个无参构造
 * 3.如果我们指定了构造方法,不管我们指定的是无参还是有参,系统都不会再
 * 	指定无参构造
 * 4.构造方法可以重载
 * 		可以根据需求,创建多个构造方法
 * 5.构造方法语法
 * 		修饰符 类名(参数列表...){方法体}
 * 6.注意不能加 static ,构造方法具有双重性
 * 		想要提供一个创建对象的方法,那么这个方法一定是静态的
 * 		静态方法中不能直接访问成员属性,成员方法中可以,所以想要初始化成员属性,
 * 		必须放在成员方法中,所以构造方法是成员的
 * 
 * 所以想要创建对象并初始化成员属性,这个方法必须具有静态和成员双属性
 * @author lenovo
 * @Date 2020年7月6日
 * @Time 下午7:56:18
 */
public class Constructor_01 {
	int age;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Constructor_01 c = new Constructor_01();
		System.out.println(c.age);
		// 18
	}

	public Constructor_01(int i) {
		age = i;
	}

	public Constructor_01() {
		age = 18;
	}
}
